<!-- 由于 antdv 1.*版本的switch不支持设置选中以及非选中的值，所以重新封装组件-->
<template>
  <a-switch v-bind="$attrs" v-model="checked" @change="handleChange" />
</template>

<script>
export default {
  props: {
    modelValue: {
      type: [Boolean, String, Number],
      default: false
    },
    // 选中值
    checkedValue: {
      type: [Boolean, String, Number],
      default: true
    },
    // 非选中值
    unCheckedValue: {
      type: [Boolean, String, Number],
      default: false
    }
  },
  data() {
    return {
      checked: true
    }
  },
  watch: {
    modelValue: {
      handler(nval) {
        this.checked = nval === this.checkedValue;
      },
      immediate: true
    }
  },
  methods: {
    handleChange(checked) {
      this.$emit('update:modelValue', checked ? this.checkedValue : this.unCheckedValue)
    }
  }
}
</script>